Field of the Invention
This invention relates generally to the field of computer processors. More particularly, the invention relates to an apparatus and method for initializing and booting a heterogeneous processor.
Description of the Related Art
Modern handheld devices have both power consumption and thermal dissipation constraints due to their small size, yet consumers are expecting increasingly advanced functionality that requires increasingly advanced computational power. To provide both decreased power consumption and increased computational resources, heterogeneous processors can be employed. Heterogeneous computing architectures provide unique advantages over homogenous architectures because more than one type of compute element is available to perform computation tasks, which allows lower intensity computational tasks to be performed by a power efficient compute elements, while higher intensity computational tasks are performed on more powerful compute elements.
In spite of the well-known advantages of heterogeneous computing architectures, there are few examples of heterogeneous computing for CPU cores in the real world. These architectures require software to know how to schedule tasks appropriately to each CPU core types (in this case the compute elements are CPU cores). As hardware evolves and core types change, it is very difficult for software (e.g., operating systems) to keep track of the different types of CPU cores which are available and how to harness heterogeneity effectively.